草庐IT

iphone - 仅在 UIImageView 的非透明像素上有效地检测触摸

全部标签

ruby-on-rails - 在 ruby​​ 中有效地将 Excel 转换为 CSV

我使用了spreadsheetgem去做这个。它可以工作,但有时可能会很慢。我什至尝试了Roogem,但这并没有提高性能。有没有更好的方法来完成这项工作?奇怪的是,在同一个excel中,有些工作表运行速度更快,有些工作表运行速度非常慢,甚至需要长达1小时。我们能否使用openoffice在单个excel中打开每个工作表(选项卡)并将它们更快地转换为csv?如果是,我将如何使用ruby​​来实现?或者有更好的解决方案吗?只是添加一个我尝试使用Roogem的小例子xls=Roo::Excel.new(source_excel_file)xls.each_with_pagenamedo|na

ruby-on-rails - Heroku 无法检测到 rake 任务(LoadError : cannot load such file -- rspec/core/rake_task)

我正在使用travisCI部署到heroku,但出现此错误。这才刚刚开始。我有基本的railsRakefile,我有一个看起来像这样的文件,否则travis无法检测到rake任务:#lib\tasks\spec.rakerequire'rspec/core/rake_task'RSpec::Core::RakeTask.newtask:default=>:spec为什么会专门为heroku显示此错误?编辑-我有一个与给出的(更好的)答案相似的版本:beginrequire'rspec/core/rake_task'desc"Runallexamples"RSpec::Core::Rak

ruby - Ruby 兰特的有效种子范围是多少?

Ruby将PRNG实现为“修改后的MersenneTwister,周期为2**19937-1”。1我对MT的理解是它在2^32种不同的种子上运行。让我感到困惑的是Random.new(seed)接受任意大的数字,例如Random.new(2**100)。但是,我无法找到(逻辑上的)碰撞:Random.new(1).rand(10**5)==Random.new(2**32-1).rand(10**5)=>falseRandom.new(1).rand(10**5)==Random.new(2**32).rand(10**5)=>falseRandom.new(1).rand(10**5

ruby - 首先 vagrant up 有效,但在停止/启动后出现 ruby​​ 错误

我已经安装了ruby2.1.6,vagrant1.7.2abdvirtualbox4.3.28。第一个vagrantup工作正常,盒子被下载,服务器工作,但是当我运行halt然后尝试另一个vagrantup我得到下面的ruby​​错误信息C:/Users/Mike/.vagrant.d/gems/gems/childprocess-0.5.6/lib/childprocess/windows/lib.rb:308:[BUG]Segmentationfaultruby2.0.0p353(2013-11-22)[i386-mingw32]//lotsofoutputlistingrubyf

ruby - 您如何检测 Ruby 中是否发生了猴子修补?

您如何检查是否已对Ruby中的特定类进行猴子修补?如果可能的话,是否也可以获得已修补属性的先前实现? 最佳答案 有钩子(Hook)method_added和method_undefined。GarryDolley写了一个Immutablemodule这可以防止猴子修补。 关于ruby-您如何检测Ruby中是否发生了猴子修补?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3355

ruby - 仅在特定服务器上调用 delayed_job capistrano 任务

我有一个专门用于delayed_job任务的服务器。我想在仅此服务器上启动、停止和重新启动delayed_jobworker。我正在使用delayed_job提供的Capistrano食谱。当我只有1个服务器时,这是我的配置:before"deploy:restart","delayed_job:stop"after"deploy:restart","delayed_job:start"after"deploy:stop","delayed_job:stop"after"deploy:start","delayed_job:start"现在我想让这些Hook仅应用于单独的delayed

ruby - 如何在 Ruby 中将 float 舍入到指定数量的有效数字?

如果有一个等价于R'ssignif的东西就好了Ruby中的函数。例如:>>(11.11).signif(1)10>>(22.22).signif(2)22>>(3.333).signif(2)3.3>>(4.4).signif(3)4.4#It'susually4.40butthat'sOK.Rdoesnotprintthetrailing0's#becauseitreturnsthefloatdatatype.ForRubywewantthesame.>>(5.55).signif(2)5.6 最佳答案 可能有更好的方法,但这似乎

Ruby 可枚举反向检测

假设我有以下数组:views=[{:user_id=>1,:viewed_at=>'2012-06-2917:03:28-0400'},{:user_id=>1,:viewed_at=>'2012-06-2917:04:28-0400'},{:user_id=>2,:viewed_at=>'2012-06-2917:05:28-0400'},{:user_id=>3,:viewed_at=>'2012-06-2917:06:28-0400'},{:user_id=>1,:viewed_at=>'2012-06-2917:07:28-0400'},{:user_id=>1,:viewed

ruby - 仅在非 nil 时才分配变量

我有@obj.items_per_page,即20一开始,我希望下面的方法仅在many_items时才为其赋值不是nil:deffetch_it_baby(many_items=nil)@obj.items_per_page=many_items使用上面的代码,即使many_items是nil,@obj.items_per_page保持在20.为什么?那是“好的”编码吗?我不应该使用类似的东西吗@obj.items_per_page=many_items||@obj.items_per_page或者有第三种方法吗?我对这两种方式都不太满意。 最佳答案

ruby-on-rails - RubyMine - 自动检测 .each、.map 和其他迭代器类型

我可以在RubyMine中编写#@param[Array]thingsdeffoo(things)endRubyMine将为things.first.*自动完成MyClass方法。但是,当我遍历每个时,例如:#@param[Array]thingsdeffoo(things)things.each{|t|t.*}endRubyMine失去了它的类型推断。我知道我可以添加注释来指定block参数类型,但是循环遍历某种类型的对象应该只会产生该类型的参数。有什么方法可以为RubyMine编写自定义规则,以便假定.each、.map和其他迭代器具有以下类型它调用的变量?